﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RbmlVisualizer.Data.Link
{
    public class Link : ILink
    {

        public IEntity EntityOne { get; set; }
        public IEntity EntityTwo { get; set; }

        public LinkEndType LinkEndType1 { get; set; }
        public LinkEndType LinkEndType2 { get; set; }
        
        public string Label { get; set; }
        public string LinkEndLabel1 { get; set; }
        public string LinkEndLabel2 { get; set; }
        
        public Multiplicity MultiplicityOne { get; set; }
        public Multiplicity MultiplicityTwo { get; set; }

        public bool HasLinkEndType(LinkEndType linkEndType)
        {
            return HasAnyLinkEndType(new[] { linkEndType });
        }

        public bool HasAnyLinkEndType(IEnumerable<LinkEndType> linkEndTypes)
        {
            return linkEndTypes.Any(linkEndType => this.LinkEndType1 == linkEndType || this.LinkEndType2 == linkEndType);
        }
    }
}
